VOICEROID+ 東北ずん子をHSPから制御するモジュールです。前シリーズと仕様が変わっています。NGワード系の処理が入っていません。
VOICEROID+ 東北ずん子をHSPから制御するモジュールです。前シリーズと仕様が変わっています。NGワード系の処理が入っていません。
#include "user32.as" #include "kernel32.as" #module __VOICEROID_ZUNKO__ #deffunc zunko_init // ウィンドウ名とかクラス名とか zunkowname1 = "VOICEROID+ 東北ずん子*" zunkowname2 = "VOICEROID+ 東北ずん子" zunkomainclass = "WindowsForms10.Window.8.app.0.17ad52b" zunkoeditclass = "WindowsForms10.RichEdit20W.app.0.17ad52b" zunkobuttonclass = "WindowsForms10.BUTTON.app.0.17ad52b" return // ボイスロイドの起動数を調べる #defcfunc GetZunkoRunningNumV h = 0 : c = 0 repeat FindWindowExA 0, h, zunkomainclass, zunkowname1 if stat == 0{ FindWindowExA 0, h, zunkomainclass, zunkowname2 } h = stat // 0 になるまでループ if h == 0 { c = cnt : break } loop return c // ボイスロイドのトップのウィンドウを取得 #defcfunc GetZunkoTopWindowV FindWindowA zunkomainclass, zunkowname1 if stat == 0{ FindWindowA zunkomainclass, zunkowname2 } return stat // ボイスロイドのテキストボックスを取得 #defcfunc GetZunkoTextBoxV FindWindowExA GetZunkoTopWindowV(), 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // その子を取得(長男) FindWindowExA hChild, stat, zunkomainclass, 0 // 2番目(次男) hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // 2番目の兄弟の孫(長男)を取得 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkoeditclass, 0 return stat // ボイスロイドの再生ボタンを取得 #defcfunc GetZunkoPlayButtonV FindWindowExA GetZunkoTopWindowV(), 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // その子を取得(長男) FindWindowExA hChild, stat, zunkomainclass, 0 // 2番目(次男) hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // 2番目の兄弟の孫(長男)を取得 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkobuttonclass, 0 return stat // ボイスロイドの停止ボタンを取得 #defcfunc GetZunkoStopButtonV FindWindowExA GetZunkoTopWindowV(), 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // その子を取得(長男) FindWindowExA hChild, stat, zunkomainclass, 0 // 2番目(次男) hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 // 2番目の兄弟の孫(長男)を取得 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 FindWindowExA stat, 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkomainclass, 0 hChild = stat FindWindowExA hChild, 0, zunkobuttonclass, 0 FindWindowExA hChild, stat, zunkobuttonclass, 0 return stat // ボイスロイドのテキストボックスを全選択する #deffunc ZunkoTextAllSelectV sendmsg GetZunkoTextBoxV(), /*EM_SETSEL*/0x00B1, 0, -1 return stat // ボイスロイドのテキストボックスにクリップボード経由で貼り付け #deffunc ZunkoTextPasteV sendmsg GetZunkoTextBoxV(), 0x0301/*WM_COPY*/, 0, 0 return stat // ボイスロイドのテキストボックスをUNDO #deffunc ZunkoTextUndoV sendmsg GetZunkoTextBoxV(), 0x0304/*WM_UNDO*/, 0, 0 return stat // ボイスロイドのテキストボックスを切り取る #deffunc ZunkoTextCutV sendmsg GetZunkoTextBoxV(), 0x0300/*WM_CUT*/, 0, 0 return stat // ボイスロイドのテキストボックスをコピー #deffunc ZunkoTextCopyV sendmsg GetZunkoTextBoxV(), 0x0301/*WM_COPY*/, 0, 0 return stat // ボイスロイドのテキストボックスを消去(選択されてるか所のみを消します) #deffunc ZunkoTextDeleteV sendmsg GetZunkoTextBoxV(), 0x0303/*WM_CLEAR*/, 0, 0 return stat // ボイスロイドのテキストボックスを消去(選択されてなくても消します) #deffunc ZunkoTextDelete2V msg = "" sendmsg GetZunkoTextBoxV(), 0x000C/*WM_SETTEXT*/, 0, varptr(msg) return stat // テキストボックスに代入します(直接) #deffunc ZunkoSetTextV str _msg msg = _msg sendmsg GetZunkoTextBoxV(), 0x000C/*WM_SETTEXT*/, 0, varptr(msg) return stat // テキストを再生します。 #deffunc ZunkoPlayTextV sendmsg GetZunkoPlayButtonV(), 0x00F5/*BM_CLICK*/, 0, 0 return // テキスト再生を停止します。 #deffunc ZunkoStopTextV sendmsg GetZunkoStopButtonV(), 0x00F5/*BM_CLICK*/, 0, 0 return // 再生中かチェック(再生中の場合は1) // 0 停止中 1 再生中 2 一時停止中 #defcfunc IsZunkoPlayingV sdim tmp, 64 sendmsg GetZunkoPlayButtonV(), 0x000D/*WM_GETTEXT*/, 64-1, varptr(tmp) if stat == 0 : return 0 if instr(tmp, 0, "一時停止") != -1 { return 0 }else : if instr(tmp, 0, "再開") != -1{ return 2 } return 1 #global // ↓これは必ず必要 zunko_init // サンプル // 起動している場合は 1以上が返る。 if GetZunkoRunningNumV() > 0 { ZunkoSetTextV "東京特許許可局" ZunkoPlayTextV }